import { setToken, getToken, delToken } from '@/utils/token'
import { login } from '@/api/user'
import router from '@/router'
import { Toast } from 'vant'
export default {
  namespaced: true,
  state: {
    token: getToken() || ''
  },
  mutations: {
    VuexSetToken (state, token) {
      // 设置vuex中的token
      state.token = token
      // 将token进行持久化
      setToken(token)
    },
    VuexDelToken (state) {
      // 清空vuex中的token
      state.token = ''
      // 将本地存储token清除
      delToken()
    }
  },
  actions: {
    // 用户登录
    async userLogin (store, user) {
      try {
        // 发起登录请求
        const res = await login(user)
        Toast.success('登录成功！')
        // console.log(res)
        const token = res?.jwt
        // 设置vuex中的token
        store.commit('VuexSetToken', token)
        // token持久化
        setToken(token)
        // console.log(res)
        router.push('/home')
      } catch (error) {
        // console.log(error)
      }
    },
    // 用户退出登录
    async userLogout (store) {
      store.commit('VuexDelToken')
      router.push('/login')
    }
  }
}
